package com.example.miniodemo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.miniodemo.common.commondto.file.FileDownloadDTO;
import com.example.miniodemo.common.result.Result;
import com.example.miniodemo.pojo.domain.Article;
import com.example.miniodemo.pojo.dto.ArticleAddOrEditDTO;
import com.example.miniodemo.pojo.dto.ArticleListDTO;

/**
 * 文章 业务逻辑层
 *
 * @author Lv
 * @date 2022/11/11
 */
public interface ArticleService extends IService<Article> {
    /**
     * 添加文章
     *
     * @param articleAddOrEditDTO 文章添加对象
     * @return
     */
    Result<?> add(ArticleAddOrEditDTO articleAddOrEditDTO);

    /**
     * 获取文章详情
     *
     * @param id 文章id
     * @return
     */
    Result<?> get(Integer id);

    /**
     * 查询文章列表
     *
     * @param articleListDTO 文章查询对象
     * @return
     */
    Result<?> list(ArticleListDTO articleListDTO);

    /**
     * 下载文章
     *
     * @param fileDownloadDTO 文件下载数据传输对象
     * @return
     */
    Result<?> download(FileDownloadDTO fileDownloadDTO);

    /**
     * 修改文章信息
     *
     * @param id                  文章id
     * @param articleAddOrEditDTO 文章修改对象
     * @return
     */
    Result<?> edit(Integer id, ArticleAddOrEditDTO articleAddOrEditDTO);
}
